<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Document</title>
</head>
<body>
    

    <script>
        // 递归函数练习：
        // 1.输入任意数值（整数），使用递归函数计算该数字的阶乘
        // fn(1) = 1;
        // fn(2) = fn(1) *2
        // fn(3) = fn(2)*3
        // f(4) = fn(3)*4
        // f(5) = f(4) *5
        function fn(a){
            if (a === 1){
                return 1;
            } else{
                return fn(a-1)*a;
            }
        }
        // console.log(fn(4));


        // 2.公园里有一堆桃子，猴子每天吃掉一半，挑出一个坏的扔掉，第6天的时候发现还剩1个桃子，问原来有多少个桃子？ 
        // f(0) =(f(1)+1) *2
        // f(1) = (f(2)+1)*2
        // f(2) = (f(3)+1)*2
        // f(3) = (f(4)+1)*2
        // f(4) = (f(5)+1)*2
        // f(5) = (f(6)+1)*2
        // f(6) =1   //出口条件

        // function f(x){
        //     if(x===6){
        //         return 1;
        //     } else{
        //         return (f(x+1)+1)*2
        //     }

        // }
        // console.log(f(4))


        // 3.输入任意数值（整数），输入n为偶数时，调用递归函数求1 / 2 + 1 / 4 + …+1 / n，当输入n为奇数时，调用递归函数求1 / 1 + 1 / 3 + …+1 / n
        // var num = prompt('输入任意数字')
        // 奇数
        // f(1) =1
        // f(3) = 1+1/2
        // f(5) = f(3)+1/5
        // // 偶数
        // f(2) = 1/2
        // f(4) = f(2) +1/4
        function f(x){
            if (x === 0){
                return 0;
            }
            if(x === 1){
                return 1;
            }
            if(x === 2){
                return 1/2;
            }
            return f(x-2)+ 1/x;
        }
        console.log(f(4))
    </script>
</body>
</html>

